Prototyping Proof Carrying Code
نویسندگان
چکیده
We introduce a generic framework for proof carrying code, developed and mechanically verified in Isabelle/HOL. The framework defines and proves sound a verification condition generator with minimal assumptions on the underlying programming language, safety policy, and safety logic. We demonstrate its usability for prototyping proof carrying code systems by instantiating it to a simple assembly language with procedures and a safety policy for arithmetic overflow.
منابع مشابه
Foundational Proof-Carrying Code
Proof-carrying code is a framework for the mechanical verification of safety properties of machine language programs, but the problem arises of quis custodiat ipsos custodes—who will verify the verifier itself? Foundational proof-carrying code is verification from the smallest possible set of axioms, using the simplest possible verifier and the smallest possible runtime system. I will describe ...
متن کاملProofs of Safety for Untrusted Code
Proof-carrying code is a technique that can be used to execute untrusted code safely. A code consumer speci es requirements and safety rules which de ne the safe behavior of a system, and a code producer packages each program with a formal proof that the program satis es the requirements. The consumer uses a fast proof validator to check that the proof is correct, and hence the program is safe....
متن کاملProof Carrying Code
Proof-Carrying Code (PCC) is a technique that can be used for safe execution of untrusted code. In a typical instance of PCC, a code receiver establishes a set of safety rules that guarantee safe behavior of programs, and the code producer creates a formal safety proof that proves, for the untrusted code, adherence to the safety rules. Then, the receiver is able to use a simple and fast proof v...
متن کاملCode-Carrying Proofs
Code Carrying Proofs are an alternative to the Proof Carrying Code (PCC) approach to secure delivery of code. With PCC, code is accompanied by a proof of its correctness or of other required properties. The code consumer does not accept delivery unless it first succeeds in generating theorems from the code called verification conditions and checking that the supplied proof proves these theorems...
متن کاملA Semantic Model of Types and Machine Instructions for Proof-Carrying Code
Proof-carrying code is a framework for proving the safety of machine-language programs with a machinecheckable proof. Such proofs have previously defined type-checking rules as part of the logic. We show a universal type framework for proof-carrying code that will allow a code producer to choose a programming language, prove the type rules for that language as lemmas in higher-order logic, then...
متن کامل